package handlers

import (
	"github.com/gin-gonic/gin"
	"mygin/models"
	"net/http"
)

func AdminHandler(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "pong",
	})
}

func AdminGetHandler(c *gin.Context) {
	name := c.Param("name")
	c.String(http.StatusOK, "Hello %s", name)
}

func AdminJsonHandler(c *gin.Context) {
	user := new(models.User)
	// 以GET方式绑定参数到结构体对象上,这样此结构体对象就获取请求中的参数的值.
	// 共有ShouldBind, ShouldBindJSON, ShouldBindXML, ShouldBindQuery, ShouldBindYAML 5种方式
	// 这些方法底层使用 ShouldBindWith，如果存在绑定错误，则返回错误，开发人员可以正确处理请求和错误。
	err := c.ShouldBindJSON(&user)
	if err != nil {
		return
	}
	c.JSON(200, gin.H{
		"message": user.Nickname,
	})
}
